package cn.car.biz;

import cn.car.domains.vo.BasePage;
import cn.car.domains.vo.sysUser.*;

public interface SysUserBiz {

    /**
     * 创建用户
     * @param req 前端传入的用户VO对象
     */
    void createUser(CreateUserReq req);

    /**
     * 根据ID获取用户信息
     * @param id 用户ID
     * @return 转换后的用户VO对象
     */
    SysUserRes getUserById(Long id);

    /**
     * 根据用户名获取用户信息
     * @param username 用户名
     * @return 转换后的用户VO对象
     */
    SysUserRes getUserByUsername(String username);

    /**
     * 更新用户信息
     * @param req 包含更新信息的用户VO对象
     */
    void updateUser(UpdateUserReq req);

    /**
     * 删除用户
     * @param id 用户ID
     */
    void deleteUser(Long id);

    /**
     * 用户登陆
     */
    SysUserRes login(UserLoginReq req);

    /**
     * 分页查询用户信息
     */
    BasePage<SysUserRes> list(UserListReq req);

    /**
     * 添加用户角色
     */
    void addUserRole(AddUserRoleReq req);
}
